home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / string / RCS / strcpy.c,v < prev    next >
Text File  |  1992-03-27  |  3KB  |  149 lines

  1. head     1.4;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.4
  10. date     92.03.27.13.30.02;  author rab;  state Exp;
  11. branches ;
  12. next     1.3;
  13.  
  14. 1.3
  15. date     89.03.22.16.06.49;  author rab;  state Exp;
  16. branches ;
  17. next     1.2;
  18.  
  19. 1.2
  20. date     88.04.25.20.47.59;  author ouster;  state Exp;
  21. branches ;
  22. next     1.1;
  23.  
  24. 1.1
  25. date     88.04.25.13.25.45;  author ouster;  state Exp;
  26. branches ;
  27. next     ;
  28.  
  29.  
  30. desc
  31. @@
  32.  
  33.  
  34. 1.4
  35. log
  36. @A few little optimizations.
  37. @
  38. text
  39. @/* 
  40.  * strcpy.c --
  41.  *
  42.  *    Source code for the "strcpy" library routine.
  43.  *
  44.  * Copyright 1988 Regents of the University of California
  45.  * Permission to use, copy, modify, and distribute this
  46.  * software and its documentation for any purpose and without
  47.  * fee is hereby granted, provided that the above copyright
  48.  * notice appear in all copies.  The University of California
  49.  * makes no representations about the suitability of this
  50.  * software for any purpose.  It is provided "as is" without
  51.  * express or implied warranty.
  52.  */
  53.  
  54. #ifndef lint
  55. static char rcsid[] = "$Header: /sprite/src/lib/c/string/RCS/strcpy.c,v 1.3 89/03/22 16:06:49 rab Exp Locker: rab $ SPRITE (Berkeley)";
  56. #endif /* not lint */
  57.  
  58. #include <string.h>
  59.  
  60. /*
  61.  *----------------------------------------------------------------------
  62.  *
  63.  * strcpy --
  64.  *
  65.  *    Copy a string from one location to another.
  66.  *
  67.  * Results:
  68.  *    The return value is a pointer to the destination string, dst.
  69.  *
  70.  * Side effects:
  71.  *    None.
  72.  *
  73.  *----------------------------------------------------------------------
  74.  */
  75.  
  76. char *
  77. strcpy(dst, src)
  78.     register char *src;        /* Place from which to copy. */
  79.     char *dst;            /* Place to store copy. */
  80. {
  81.     register char *copy = dst;
  82.     register char c;
  83.  
  84.     do {
  85.     c = copy[0] = src[0];
  86.     if (c == '\0') {
  87.         break;
  88.     }
  89.     c = copy[1] = src[1];
  90.     if (c == '\0') {
  91.         break;
  92.     }
  93.     c = copy[2] = src[2];
  94.     if (c == '\0') {
  95.         break;
  96.     }
  97.     c = copy[3] = src[3];
  98.     if (c == '\0') {
  99.         break;
  100.     }
  101.     copy += 4;
  102.     src += 4;
  103.     } while (1);
  104.     return dst;
  105. }
  106. @
  107.  
  108.  
  109. 1.3
  110. log
  111. @*** empty log message ***
  112. @
  113. text
  114. @d17 1
  115. a17 1
  116. static char rcsid[] = "$Header: /sprite/src/lib/c/string/RCS/strcpy.c,v 1.2 88/04/25 20:47:59 ouster Exp Locker: rab $ SPRITE (Berkeley)";
  117. d44 1
  118. d47 14
  119. a60 2
  120.     if (!(copy[0] = src[0]) || !(copy[1] = src[1])
  121.         || !(copy[2] = src[2]) || !(copy[3] = src[3])) {
  122. @
  123.  
  124.  
  125. 1.2
  126. log
  127. @Modified slightly to be fast with both RISC and non-RISC machines.
  128. @
  129. text
  130. @d17 4
  131. a20 2
  132. static char rcsid[] = "$Header: strcpy.c,v 1.1 88/04/25 13:25:45 ouster Exp $ SPRITE (Berkeley)";
  133. #endif not lint
  134. @
  135.  
  136.  
  137. 1.1
  138. log
  139. @Initial revision
  140. @
  141. text
  142. @d17 1
  143. a17 1
  144. static char rcsid[] = "$Header: proto.c,v 1.2 88/03/11 08:39:08 ouster Exp $ SPRITE (Berkeley)";
  145. d44 7
  146. a50 1
  147.     } while ((*copy++ = *src++) != 0);
  148. @
  149.